package com.texaco.chapasFutbol.entidades;

import org.andengine.engine.handler.IUpdateHandler;
import org.andengine.engine.handler.physics.PhysicsHandler;
import org.andengine.opengl.texture.region.ITextureRegion;
import org.andengine.opengl.vbo.VertexBufferObjectManager;
import org.andengine.util.debug.Debug;

/**
 * Clase que implementa el objeto Pelota en el juego de futbol chapa. Contendrá
 * aquellas propiedades propias de la pelota, tales como imagen de la pelota,
 * velocidad, indice de rebote, etc.
 * 
 * @author texaco
 * 
 */
public class Pelota extends CFSprite {
	public static final String IMAGEN = "balon2.png";
	public static final int WIDTH = 99;
	public static final int HEIGHT = 99;
	private PhysicsHandler physics;

	public Pelota(int xPos, int yPos, ITextureRegion shape,
			VertexBufferObjectManager vertex, Game game, float damping) {

		super(xPos, yPos, shape, vertex, game, damping);
		// physics = new PhysicsHandler(this);
		// this.registerUpdateHandler(physics);
		this.registerUpdateHandler(new PelotaUpdateHandler(game));
	}

	/**
	 * Método creado expresamente para las pruebas. solo se va utliza para poner
	 * la pelota en movimiento al inciar la partida y detectar si hemos hecho
	 * gol.
	 */
	private void movimientoInicial() {
		physics.setVelocityX(100);
	}

	private class PelotaUpdateHandler implements IUpdateHandler {
		Game game;

		public PelotaUpdateHandler(Game game) {
			this.game = game;
		}

		public void onUpdate(float pSecondsElapsed) {
			// FIXME: ACTUALMENTE SE EXIGE QUE ESTÉ INCLUIDO, PERO ES POSIBLE
			// QUE CON QUE INTERSECCIONEN SEA SUFICIENTE.
			if (Game.AREAS_GOL[0].contains((int) getX(), (int) getY(),
					(int) (getX() + WIDTH), (int) (getY() + HEIGHT))) {
				game.golLocal();
			} else if (Game.AREAS_GOL[1].contains((int) getX(), (int) getY(),
					(int) (getX() + WIDTH), (int) (getY() + HEIGHT))) {
				game.golVisitante();
			}
		}

		public void reset() {
		}

	}
}
